package com.hsh.erp.domain.file;


import com.hsh.erp.anno.Alia;
import com.hsh.erp.constants.filepath.GlobalPathConstants;
import com.hsh.erp.domain.dto.ProductDTO;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;

@Data
public class YDImport {
    /**
     * 订单编号
     */
    @Alia("订单号")
    private String no;

    /**
     * 发件人姓名 *
     */
    @Alia("发件人姓名 *")
    private String shopName;
    /**
     * 发件人电话
     */
    @Alia("发件人电话")
    private String shopTel;
    /**
     * 发件人手机 *
     */
    @Alia("发件人手机 *")
    private String shopPhone;
    /**
     * 发件人详细地址 *
     */
    @Alia("发件人详细地址 *")
    private String shopAddress;

    /**
     * 自定义区域1
     */
    @Alia("自定义区域1")
    private String customArea1;
    /**
     * 自定义区域2
     */
    @Alia("自定义区域2")
    private String customArea2;

    /**
     * 收件人姓名 *
     */
    @Alia("收件人姓名 *")
    private String customerName;
    /**
     * 收件人电话
     */
    @Alia("收件人电话")
    private String customerTel;
    /**
     * 收件人手机 *
     */
    @Alia("收件人手机 *")
    private String customerPhone;
    /**
     * 收件人详细地址 *
     */
    @Alia("收件人详细地址 *")
    private String customerAddress;

    /**
     * 订单类型
     */
    @Alia("订单类型")
    private String orderType;
    /**
     * 到付保价金额
     */
    @Alia("到付保价金额")
    private String quotationAmount;
    /**
     * 代收货款金额
     */
    @Alia("代收货款金额")
    private String paymentAmount;

    /**
     * 重量 :kg
     */
    @Alia("重量")
    private BigDecimal weightKg;
    /**
     * 商品信息 *
     */
    @Alia("商品信息 *")
    private String productInfo;
    /**
     * 备注
     */
    @Alia("备注")
    private String note;

    /**
     * 重量 : g
     */
    private Integer weightGram;

    /**
     * 商品列表
     */
    private List<ProductDTO> productDTOList;


    /**
     * 设置默认值
     */
    public YDImport() {
        if (this.weightGram == null) {
            this.weightGram = 0;
        }
        this.weightKg = BigDecimal.valueOf(this.weightGram, 3);
        this.shopName = GlobalPathConstants.DEFAULT_SHOP_NAME;
        this.shopAddress = GlobalPathConstants.DEFAULT_SHOP_ADDRESS;
        this.shopPhone = GlobalPathConstants.DEFAULT_SHOP_MOBILE_PHONE;
        this.orderType = GlobalPathConstants.DEFAULT_ORDER_TYPE;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof YDImport)) return false;
        YDImport ydImport = (YDImport) o;
        return Objects.equals(no, ydImport.no) && Objects.equals(productInfo, ydImport.productInfo);
    }

    @Override
    public int hashCode() {
        return Objects.hash(no, productInfo);
    }
}
